/*
 * Random.h
 *
 *  Created on: 2 mars 2013
 *      Author: Raphaël
 */

#ifndef RANDOM_H_
#define RANDOM_H_

#include <random>
#include "WorkspaceTools.h"

namespace raph
{

class Random
    {
    private:
        std::mt19937 m_rng;
        type::T_UINT32 m_seedVal;

    public:
        Random();
        virtual ~Random();

        /**
         * Cette fonction retourne une nombre entier sur 32bits aléatoire compris entre 0 inclusif et n exclusif.
         */
        type::T_INT32 nextInt32(const int32_t &n);

    };

} /* namespace rcRandom */
#endif /* RANDOM_H_ */
